专利摘要:
CONTINUOUS ADAPTIVE DATA TRANSMISSION MANAGEMENT THROUGH A COMMUNICATION CONNECTION.Data is received on a receiving device from a server, where the data is encoded in one of a plurality of different versions, each version having a different level of fidelity. A data stream having a buffer with a maximum initial window size for buffering the received data is requested from the server, where the data stream initially has a first level of fidelity. The maximum window size is controlled to prevent the current window size from falling below a threshold which can cause an adjustment by the server in the level of fidelity of the data flow sent by the server, unless and until data accumulation in the buffer due to a decrease in the current processing capacity of the receiving device controller falls below a threshold of processing power required for processing the data stream at the higher fidelity level for more than a transitional period of time.
公开号:BR112014021406A2
申请号:R112014021406-9
申请日:2013-02-11
公开日:2020-11-10
发明作者:Arjun Ramamurthy;Ajay K. Luthra;Mark S. Schmidt
申请人:Motorola Mobility Llc;
IPC主号:
专利说明:

[001] [001] The present invention is generally related to the management of adaptive streaming ("streaming") of data through a communication connection and, more particularly, to management of the adaptive data flow by managing the size of a data buffer and , correspondingly, the available buffer space on a device receiving the data. BACKGROUND OF THE INVENTION
[002] [002] Digital content distribution has become increasingly popular for receiving content, such as audio or video, to be processed by a receiving device. It has also become increasingly desirable for content to be processed around the same time that the content is received or "on demand". At least one type of digital distribution on demand or in real time is referred to as streaming, which attempts to maximize the quality level of content flow, while minimizing the amount of system resources needed to support rendering the data stream , such as the memory used to buffer or maintain the content that is stored on the device by receiving and redeeming. This can sometimes be a little more challenging in a packet data network, where there is no dedicated bandwidth that can be relied on to ensure a constant flow of data as needed on demand. In some cases, data is transmitted through a network infrastructure that at various points along the data path can be shared between multiple users, where at a given point in time, demand between multiple users can momentarily exceed capacity or not. Demand that exceeds capacity can not only affect a particular segment of the data path, but can also occur on the server that is the source of the data flow.
[003] [003] In some cases, periods of high demand, which can negatively impact the ability of the server or the communication connection to transmit the data, can be transient and can result in the data being forwarded to a particular user to arrive unevenly or in bursts. As such, many client applications that are used to render a particular data stream can make use of a data buffer, which can be used to store a small amount of data in advance of rendering in order to smooth over periods of time when the data stream may fall below the rates required to support content rendered at a current quality level, even if the average available data stream is more than sufficient to support the given quality level. While a larger buffer will help accommodate a greater amount of volatility or a greater variety of flow disturbances, a larger buffer generally requires an increased amount of system resources, that is, the available memory, to be used to support the buffer. data, and can increase the time required to fill the data buffer, which can correspondingly delay the start time before streaming content begins to be presented to the user, in relation to the point in time that the user requested the content.
[004] [004] In addition to variations associated with the supply and delivery of data in the data stream via the communication connection, smooth rendering of content can sometimes be affected by the processor's reproducibility including interruptions in the same way it can be in the same way. transitory nature. For example, many current devices support multitasking, where processor capabilities are shared between multiple applications that are running on the device at the same time. Thus, there may be fluctuations in the demand for network resource data transport capabilities among multiple users of network resources, multiple applications running on a device may have different levels of demand on the processor, which can provide periods of time when Processing capacities available for a given application may be below what is needed to support current processing needs according to the current operational definition without the user noticing a performance degradation.
[005] [005] In general, higher fidelity data streams require large amounts of data and greater processing power to decode and render content. Alternatively, lower fidelity data streams generally require smaller amounts of data and less processing power to decode and render content. As such, it is sometimes possible to manage playback performance by managing the quality level of the continuously transmitted data to be processed. However, in general, whenever possible, most users will want their requested data streams to be rendered using the highest level of quality that does not negatively affect the smooth uninterrupted presentation of the rendered data.
[006] [006] Adaptive continuous transmission allows the quality level to be adjusted during rendering, in order to better match the available data capacity of the communication channel as well as the device's processor reproduction capacity at any particular time. In at least some cases, the server will monitor the data buffer on the receiving device including the ratio of a current window size to a maximum window size to determine what level of data stream quality should be provided for the receiving device. The maximum window size is usually a fixed size that is assigned when the data connection is opened. For a particular data stream, multiple connections can be opened during the data stream delivery period. The current window size generally includes the space available in the data buffer for data packets yet to be received as well as in at least some cases the space associated with data packets that have been transmitted to the device but have not yet been recognized. Alternatively, space normally excluded from the current window size value includes data packets that have been received and recognized, but that have not yet been used by the rendering application. During interruptions in the processing capabilities provided for rendering received content, data packets, which have been received, acknowledged, but not yet consumed by the application, can increase in the data buffer in relation to the maximum global window size of the data buffer thereby reducing the current window size available for receiving more data. The server seeing a decrease in the current window size may determine that the device is unable to support the current data flow to a certain level of quality, in which a quantity of data is buffered based on a predetermined amount of time considered desirable for smoothing over possible variability. This may be the result of a degradation in the device's ability to receive and render data. Correspondingly, the server can reduce the quality level of the data segments transmitted continuously subsequently.
[007] [007] In general, the current window size value is transmitted to the server in packets sent to the server from the receiving device. In some cases, the current window size can be included in most or even sometimes all packets sent by the receiving device to the server. Because processing loads that negatively affect the processing power available to render streaming data can sometimes occur as momentary spikes that can measurably impact the current window size that is reported to the server, in some cases the server may react to a decrease in the current window size based on a degradation in processor performance that is only of a transitory nature. While the quality level can generally be increased and decreased as appropriate, there can sometimes be a significant delay in making changes to current quality settings that return or increase the level of quality relative to the current capabilities of the device. BRIEF SUMMARY
[008] [008] The present invention provides a method for the management of adaptive continuous transmission of data in a receiving device. Continuous data transmission includes data received from a server, where the server includes one or more data streams. Each data stream includes one or more data segments. Each data segment is encoded to one of a plurality of different versions. Each of the plurality of different versions can have a different level of loyalty. The method includes requesting a data stream using a buffer with a maximum initial window size to buffer received data associated with the requested data stream, where the initial data segments received as part of the data stream have a first level of loyalty. One or more data segments associated with the data stream are then received in the buffer, while one or more data segments for use by a processor of the receiving device are removed from the buffer. A current window size of the buffer is then determined, where the current window size is equal to the maximum window size minus any data segments that have been received that have not been removed from the buffer for use by the processor. The current window size is then compared to a predetermined threshold. When the current window size is less than the predetermined threshold, the maximum window size is increased, in which an updated maximum window size is increased to be larger than the initial maximum window size, and a size increase timer buffer having a current timer value and a timer expiration value is started. While the maximum updated window size is greater than the initial maximum window size and the current timer value of the buffer size increase timer is less than the timer expiration value, at regular intervals a current window size is present. determined and the updated maximum current window size is adjusted in order to keep the current window size to at least the predetermined threshold minimally. When the updated maximum window size is adjusted to be no larger than the initial maximum window size prior to the current timer value of the buffer size increase timer reaching the timer expiration value, the buffer size is finished. When the buffer size increase timer reaches the timer expiration value, the bit rate level of subsequently received data segments is adjusted to a second fidelity level less than the first fidelity level.
[009] [009] The present invention further provides a method for managing an adaptive continuous transmission of data on a receiving device. Continuous data transmission includes data received from a server, where the server includes one or more data streams. Each data stream includes one or more data segments. Each data segment is encoded to one of a plurality of different versions. Each of the plurality of different versions can have a different level of loyalty. The method includes requesting a data stream using a buffer with a maximum initial window size to buffer received data associated with the requested data stream, where the initial data segments received as part of the data stream have a first level of loyalty. One or more data segments associated with the data stream are then received in the buffer for use by a processor. During the reception of one or more data segments, a decrease in processor performance relative to the processing of the data stream is detected by monitoring the amount of available space in the buffer. A determination is then made as to whether the drop in processor performance is transient. When the performance decrease is determined to be no more than transient, the maximum buffer window size is adjusted to maintain a larger amount of space than a predetermined threshold. When performance degradation is more than transient, the level of loyalty in the data stream is adjusted to a second level of loyalty that is less than the first level of loyalty.
[0010] [0010] The present invention further provides a data interface of a receiving device for receiving one or more data streams from a server. The server includes one or more streams. Each stream includes one or more data segments, where each data segment is encoded to one of a plurality of different versions.
[0011] [0011] These and other objects, characteristics and advantages of this invention are evident from the following description of one or more preferred embodiments of the present invention, with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE VARIOUS VIEWS OF THE DRAWINGS
[0012] [0012] While the attached claims present the characteristics of the present invention with particularity, the invention, together with its objects and advantages, can be better understood from the following detailed description taken in conjunction with the attached drawings, of which:
[0013] [0013] Figure 1 is a partial block diagram of an exemplary system for sending and receiving a data stream;
[0014] [0014] Figure 2 is a block diagram of a receiving device that includes a data interface for the management of adaptive continuous transmission of data through a communication connection, according to at least one embodiment of the present invention;
[0015] [0015] Figure 3 is a block diagram of an exemplary data buffer;
[0016] [0016] Figure 4 is a flow chart of a method for the management of adaptive continuous transmission of data through a communication connection, according to at least one embodiment of the present invention; and
[0017] [0017] Figure 5 is a flowchart of a method for the management of adaptive continuous transmission of data through a communication connection, according to at least one embodiment of the present invention. DETAILED DESCRIPTION
[0018] [0018] With regard to the drawings, where the same reference numbers refer to similar elements, the invention is illustrated as being implemented in a suitable environment. The following description is based on modalities of the invention and should not be taken to limit the invention to alternative modalities that are not explicitly described.
[0019] [0019] It is beneficial to control the size of the maximum window size, which in turn affects the current window size used by a server to determine a quality level of a data stream to provide to a receiving device, where the maximum window size of the data buffer on the receiving device can be momentarily increased to accommodate an increase in the amount of data that has been received and acknowledged but not yet consumed by the rendering application on the receiving device until it can be determined that a decrease in processor reproducibility is more than transient. This can reduce the number of cases where the server may want to make changes to the quality level of the data being transmitted.
[0020] [0020] Figure 1 illustrates a partial block diagram of an exemplary system 100 for sending and receiving a data stream. The continuous transmission of content over a packet data network 102, such as the Internet, has become a commonly adopted practice, where, for example, video clips, voice communications, music and films are commonly transmitted from a source data, as a content provider, to a receiving device 104 of an end user. In many cases, the data stream originates with a server 106, such as a content or media server, which contains content encoded in a form that has one or more levels of fidelity, where on request a communication connection is defined with the receiving device 104.
[0021] [0021] In some cases, the receiving device
[0022] [0022] In some cases, data may be delivered to the wireless receiving device 104. In such a case, a part of the communication path of the communication channel may include a transceiver element 12, such as an access point in the in which case the path passes through a portion of a wireless LAN, or a base transceiver station in the case where the path passes through a portion of a cellular network. Transceiver element 112 can communicate data to the receiving device 104 wirelessly. In some cases, the receiving device 104 may be the device on which the content is being processed and, correspondingly, presented to the user. In other cases, the receiving device 104 can transmit the data to a device 114 tied to the receiving device 104 for rendering and for receiving either the encoded or decoded data. The tied device 114, while often associated with the receiving device 104 via a wired connection, such as by means of a cable, can alternatively be coupled to the receiving device 104 via a wireless connection, such as a Bluetooth ® connection, without departing from the teachings of the present invention.
[0023] [0023] Examples of receiving devices 104, without claiming to be exhaustive, may include personal computers, tablets, cell phones, televisions, stereos, audio devices, video game consoles, digital cameras, cable or satellite broadcast converters, digital video recorders, and the like. While in some cases, these devices may receive content in a broadcast format, the present application is particularly suitable for data that is transmitted over a communication connection using a packet-based communication protocol, such as a transmission control protocol, or a hypertext transfer protocol, where the receipt of packets is confirmed, and return from the receiving device
[0024] [0024] In such a case, the total size of the data buffer may be modest compared to the total size of the content being transmitted. The intent of the data buffer is to accommodate momentary fluctuations, which limit the network's ability to deliver the data, or the ability of playback processors to process and render the data. It is generally the intention of such systems to attempt to match the fidelity of the data stream with the network's ability to deliver and send the data, as well as the capacity of the receiving device 104 to process and reproduce the data. In other words, the system usually tries to provide the highest quality version of the data during trying to avoid pauses, interruptions, or skips in the content being transmitted to the user during the process of rendering the content. As such, the data flow is generally monitored, and the data flow adjusted as appropriate, to support smooth playback of the content being presented to the user.
[0025] [0025] In order to monitor conditions on the receiving device 104, the receiving device 104 generally establishes or allocates a fixed size data buffer when opening a communication connection. The receiving device 104 then communicates with the server 106 the state of filling of the data buffer, and in turn the server 106 can adjust the amount and fidelity of the data being transmitted so as not to over or under fill the data buffer.
[0026] [0026] However, sometimes the server can respond aggressively to a condition on the receiving device 104 which is only of a transitory nature. As such, according to the present invention, it may be advantageous for the receiving device 104 to adjust the size of the data buffer to accommodate fluctuations in the performance of the receiving device 104, which would be undesirable for the server 106 to transition to a flow of lower fidelity data in response to a buffer that is filling very quickly due to a decrease in the receiving device 104's ability to process the data. A momentary deficiency may be the result of an increase in the demand for processing power in another application that is simultaneously running inside the receiving device 104. (Many devices are increasingly supporting the concurrent use of various programs or applications. )
[0027] [0027] Figure 2 illustrates a block diagram of a receiving device 200 that includes a data interface for the management of adaptive continuous transmission of data through a communication connection, in accordance with at least one embodiment of the present invention. . The data interface includes a transceiver 202, which is adapted to communicate with a server 106 over a communication connection. Although, in some cases, transceiver 202 may be attached to the packet data network, and correspondingly to server 106, via a wired connection, in other cases, transceiver 202 may be attached to an antenna 204 to support a communication connection that includes a wireless component. The data interface further includes memory 206, including a data buffer 208 for storing data received from server 106 via transceiver 202 and a controller 210.
[0028] The controller 210 includes a data flow management module 212 adapted to request a data flow including one or more data segments to be received through the transceiver 202 for the data buffer 208, in which the data segments initials received as part of the data stream have a first level of fidelity, and for removal from the data buffer 208 of one or more data segments for use by a processor 214. The controller also includes a buffer management module 216 which is adapted to manage the size of the data buffer 208 including establishing a data buffer 208 having a maximum window size associated with the requested data flow, and to determine a current window size of the data buffer 208, where the current window size is equal to the maximum window size minus any data segments that have been received that have not been removed from the data buffer for use by the 214 processor. The buffer management module further compares the current window size of data buffer 208 to a predetermined threshold and increases the maximum window size when the current window size is less than the predetermined threshold. The controller further includes a timer management module 218 which is adapted to start a buffer size increase timer 220 having a current timer value and a timer expiration value when the current window size is less than the predetermined threshold . Generally, when started, the timer will follow a time elapsed until timer 220 is deactivated or the timer expires upon reaching the timer expiration value.
[0029] [0029] In some embodiments, controller 210 is implemented in the form of a microprocessor, which is adapted to execute one or more sets of pre-stored instructions 222, which can be used to form at least part of one or more controller modules 212, 216, and 218. The one or more sets of pre-stored instructions 222 can be stored in memory 206, which, while shown as being separate in the drawings, can either be integrated as part of the controller or coupled to the controller. controller 210. Memory 206 may include one or more forms of volatile and non-volatile memory elements. Memory 206 may additionally or alternatively incorporate one or more forms of auxiliary storage, either fixed or removable, such as a hard disk or a floppy drive. One skilled in the art will appreciate that other additional forms of memory elements can be used without departing from the teachings of the present invention. In the same or other cases, controller 210 may incorporate state machines or logic circuits, which can be used to implement at least partially some of the controller modules and their respective functionality. It is also possible for timer 220 to be implemented as a module in controller 210.
[0030] The receiving device 200 includes a processor 214, which is adapted to receive data segments from the data buffer 208 and to decode the data segments via a decoder 224 so that the data can be rendered so as to be detected by the user. Rendered data can be provided to the user via one of the elements of the 226 user interface. Exemplary user interface elements include one or more screens 228, one or more speakers 230, and one or more vibrational elements 232. In this way , it may be possible for the receiving device to recreate visual and audio information, as well as vibration information, which can be experienced by the user. The processor 214 can also be implemented in a microprocessor. In addition, it is possible that the same microprocessor can be used to implement both controller 210 and processor 214.
[0031] [0031] Figure 3 is an exemplary block diagram of a 208 data buffer. The data buffer is generally a portion of memory 206 corresponding to the maximum window size. Within the maximum window size of the data buffer 208, the space can be segregated into three sections. The data buffer includes a section 302 within which data packets or data segments have been received and recognized, but not yet used by the processor or, more specifically, by a rendering application running inside the 214 processor. The data buffer 208 it also includes a section 304 where the data packets transmitted to the receiving device 200 are present, but which have not yet been recognized as having been received by the receiving device 200 to the server 106. The data buffer 208 further includes a section 306 including the space inside the buffer that is not being used and is available to store more data. Generally, the current window size associated with the data buffer includes the unused portion, section 306, and in at least some cases additionally includes section 304 being used to store data packets that have been transmitted to the receiving device , but have not yet been recognized. When data is used by the processor, it is removed from data buffer 208, which in turn frees up space in the buffer.
[0032] [0032] The current window size represents a value that is generally carried to server 106 in communications from the receiving device 200 to server 106. In at least some embodiments, the current window size will be present in at least some, if not all headers, of messages communicated to server 106 from receiving device 200. Server 106 will use the current window size information to determine how much data the receiving device can handle in subsequent transfers . Indirectly in connection with knowledge of the maximum window size, information about the current window size can be used to determine the amount of data buffer 208 currently being used. Besides that,
[0033] [0033] For example, by increasing the maximum window size, the receiving device 200 may be able to avoid circumstances in which the server 106 can adjust the level of fidelity of the portion of the data stream to be sent subsequently, in circumstances where that it may be desirable to do so. That is, the receiving device 200 can delay server 106 by reacting to situations in which the data buffer is filling with unused data, where the processor is experiencing an abnormal processing load, causing a delay in processing the data that will be used in rendering the content streamed continuously. A timer 220 allows the receiving device, and more specifically the data interface, to determine how long the data in the buffer has been impacted and whether the condition persists beyond a certain time. The maximum window size, and, correspondingly, the current window size, can be readjusted to allow server 106 to respond to a data buffer 208 that it is filling with unused data. However, until timer 220 expires, the maximum window size can continue to be modified to avoid an adjustment by the server 106. If the maximum window size, and,
[0034] [0034] In general, the fidelity of the data segments refers to the quality of the signal. For audio data, fidelity can correspond to the bit rate at which the audio signal is encoded. For video data, fidelity can correspond to the resolution of the video signal or the frame rate of the encoded video signal. In general, a lower fidelity signal comprises less data than a higher fidelity signal. As such, a longer duration of the transmitted content can be encoded in the same number of bits for a signal having a lower fidelity value.
[0035] [0035] Figure 4 is a flow chart 400 of a method for the management of adaptive continuous transmission of data by means of a communication connection, in accordance with at least one embodiment of the present invention. The method includes receiving 402 a requested data stream. Upon receipt of the requested data stream, the method attempts to detect a slowdown in processor performance. If a deceleration that is more than transient is detected 406, then the level of fidelity for the part of the data stream to be subsequently sent by the server and received by the receiving device 408 is adjusted to have a lower level of fidelity. If a deceleration, which is more than transient, 410 is not detected, then the maximum window size of the data buffer in the receiving device is adjusted.
[0036] [0036] Figure 5 is a more detailed flowchart of a method 500 for managing adaptive continuous transmission of data through a communication connection. The method includes requesting 502 of a data stream from a content server. Data from the data stream is then received 504 in a buffer, while data for use by the receiving device processor is removed from buffer 506. A determination 508 is then made as for the current window size value. , which corresponds to the available space in the buffer, which in at least some cases, includes data that has been recognized as having been received by the receiving device. If the current window size is less than a predefined threshold 510, then the maximum buffer size of the data buffer is increased by 512, and a timer is started 514, which marks the time that the maximum buffer size has been increased. If the current window size is equal to or greater than a predefined threshold 510, then no changes will be made to the maximum window size of the buffer, and the receiving device continues to receive 504 data on and process 506 data out of the buffer.
[0037] [0037] When starting the timer 514, the receiving device likewise continues to receive data into and process data out of buffer 516, but it also checks whether the timer period has expired 518. If the timer has not expired, the interface data adjust 520, as appropriate, the size of the buffer to minimally maintain an available space in the buffer that is not below the specified threshold. If, before the expiration of timer 518 and after the maximum buffer window size is still adjusted 520, the adjusted maximum window size is even larger than the initial maximum buffer window size, then the receiving device of reception continues to receive data and process the data out of buffer 516. If, before the expiration of timer 518 and after the maximum buffer window size is still set 520, the adjusted maximum window size is still not greater than the initial maximum window size of the buffer, then the timer is terminated 524. If the timer expires 518, then the level of fidelity of the data to be subsequently received by the receiving device is reduced 526, and the timer 524 is terminated. In this way, the adaptive continuous transmission of data through a communication connection can be managed by adjusting the maximum window size of the data buffer.
[0038] [0038] Taking into account the many possible modalities to which the principles of the present invention can be applied, it must be recognized that the modalities described herein in relation to the Figures are intended to be illustrative only and should not be taken as limiting the scope of the invention. Therefore, the invention, as described herein, contemplates all of these modalities that may fall within the scope of the following claims and their equivalents.
权利要求:
Claims (15)
[1]
1. Method for managing adaptive streaming of data on a receiving device, including data received from a server, where the server includes one or more data streams, each data stream including one or more data segments, each segment being encoded in one of a plurality of different versions, each of the plurality of different versions with a different level of fidelity, the method characterized by the fact that it comprises: requesting a data stream using a buffer with a window size initial maximum to buffer received data associated with the requested data stream, where the initial data segments received as part of the data stream have a first level of fidelity; receiving in the buffer of one or more data segments associated with the data flow; removing one or more data segments from the buffer for use by a processor of the receiving device; determining a current window size of the buffer, where the current window size is equal to the maximum window size minus any data segments that have been received that have not been removed from the buffer for use by the processor; compare the current window size to a predetermined threshold; and increase the maximum window size, where an updated maximum window size is increased to be greater than
2/8 than the initial maximum window size, and start a buffer size increase timer having a current timer value and a timer expiration value, when the current window size is less than the predetermined threshold; where, while the maximum updated window size is greater than the initial maximum window size and the current timer value of the buffer size increase timer is less than the timer expiration value, at regular intervals to determine a window size current present and adjust the maximum updated window size in order to minimally maintain the current window size of at least the predetermined threshold; where the buffer size increase timer is terminated when the updated maximum window size is adjusted to be no larger than the initial maximum window size before the current buffer size increase timer value reaches the timer expiration value; and wherein the bit rate level of subsequently received data segments is set to a second fidelity level less than the first fidelity level when the buffer size increase timer reaches the timer expiration value.
[2]
2. Method for managing adaptive streaming of data according to claim 1, characterized by the fact that the current maximum updated window size adjustment includes: further increasing the maximum window size when the current current window size is less than the threshold
Predetermined 3/8; and decrease the maximum window size when the current window size is greater than the predetermined threshold.
[3]
3. Method for managing adaptive streaming of data according to claim 2, characterized by the fact that when decreasing the maximum window size the amount that the maximum window size is decreased is limited to the amount that the maximum window size updated is larger than the maximum initial window size.
[4]
4. Method for managing adaptive streaming of data according to claim 1, characterized in that the regular intervals at which the current current window size is determined and the maximum updated current window size is adjusted correspond to a threshold maximum transmission unit of the requested data stream.
[5]
5. Method for managing adaptive continuous data transmission, according to claim 1, characterized by the fact that the data segments that have been received are limited to data segments that have been recognized by the receiving device.
[6]
6. Method for managing adaptive continuous data transmission, according to claim 1, characterized by the fact that increasing the maximum window size increases the current window size; and / or where requesting a data stream includes opening a connection to the server.
[7]
7. Method for managing streaming
4/8 adaptive data, according to claim 1, characterized by the fact that the data flow includes data in real time and / or in which the current window size is regularly communicated to the server as part of the messages sent from the receiving device.
[8]
8. Method for managing adaptive continuous data transmission, according to claim 1, characterized by the fact that the buffer is allocated from a memory of the receiving device and / or in which the level of fidelity includes one or more video data at one or more different resolutions or frame rates, and audio data at one or more different bit rates.
[9]
9. Method for managing adaptive streaming of data on a receiving device, including data received from a server, where the server includes one or more data streams, each data stream including one or more data segments, each segment being encoded in one of a plurality of different versions, each of the plurality of different versions with a different level of fidelity, the method characterized by the fact that it comprises: requesting a data stream using a buffer with a window size initial maximum to buffer received data associated with the requested data stream, where the initial data segments received as part of the data stream have a first level of fidelity; receiving in the buffer one or more data segments associated with the data flow for use by a processor; while receiving one or more data segments,
5/8 detect a decrease in processor performance compared to processing the data flow by monitoring an amount of available space in the buffer; determine whether the decrease in processor performance is transient; adjust the maximum window size of the buffer to maintain a larger amount of space than a predetermined threshold when the decrease in performance is only transient; and adjust the loyalty level of the data stream to a second loyalty level that is less than the first loyalty level when the decrease in performance is more than transient.
[10]
10. Data interface of a receiving device to receive one or more data streams from a server, where the server includes one or more streams, each stream including one or more data segments, where each data segment is encoded to one of a plurality of different versions, each of the plurality of different versions with a different level of fidelity, the data interface characterized by the fact that it comprises: a transceiver adapted to communicate with the server through a communication connection; a memory including a buffer for storing data received from the server via the transceiver; and a controller including: a data flow management module adapted
6/8 to request a data stream including one or more data segments to be received via the buffered transceiver, where the initial data segments received as part of the data stream have a first level of fidelity, and remove from buffer one or more data segments for use by a processor; a buffer management module adapted to manage a buffer size including establishing a buffer with a maximum window size associated with the requested data flow, determining a current buffer window size, where the current window size is equal to maximum window size minus any data segments that have been received that have not been removed from the buffer for use by the processor, compare the current window size to a predetermined threshold, and increase the maximum window size when the current window size is less than the predetermined threshold; and a timer management module adapted to start a buffer size increase timer having a current timer value and a timer expiration value when the current window size is less than the predetermined threshold; where while the maximum updated window size is greater than the initial maximum window size and the current timer value of the buffer size increase timer is less than the timer expiration value, at regular intervals, the buffer is also adapted to determine a current window size
7/8 present and adjust the current maximum updated window size, so as to keep the current window size to a minimum of at least the predetermined threshold; wherein the timer management module is further adapted to terminate the buffer size increase timer when the updated maximum window size is adjusted to be no greater than the initial maximum window size prior to the current timer value the buffer size increase timer reaches the timer expiration value; and wherein the timer management module is adapted to adjust the bit rate level of subsequently received data segments to a second fidelity level less than the first fidelity level when the buffer size increase timer reaches the value timer expiration.
[11]
11. Data interface according to claim 10, characterized by the fact that the transceiver is coupled to an antenna to receive and transmit data from the server via a wireless communication connection.
[12]
12. Data interface, according to claim 10, characterized by the fact that the transceiver is coupled to a network through a wired connection.
[13]
13. Data interface according to claim 10, characterized by the fact that one or more of the data flow management module, the buffer management module, and timer management module include one or more pre-instructions stored in a computer-readable medium, where one or more pre-stored instructions are adapted to be executed by
8/8 controller.
[14]
14. Data interface according to claim 13, characterized by the fact that one or more pre-stored instructions are stored in memory and / or in which the processor includes a decoder to decode the received one or more data segments .
[15]
15. Data interface according to claim 10, characterized by the fact that the data flow includes data in real time and / or the data interface is incorporated as part of a receiving device.
类似技术:
公开号 | 公开日 | 专利标题
BR112014021406A2|2020-11-10|adaptive data flow management via a communication connection
US11032343B2|2021-06-08|Methods and devices for efficient adaptive bitrate streaming
US10277530B2|2019-04-30|Allocating portions of a shared network resource based on client device groups
JP6268090B2|2018-01-24|Method for controlling bandwidth and corresponding equipment
US9014048B2|2015-04-21|Dynamic bandwidth re-allocation
JP5302415B2|2013-10-02|Optimal bandwidth utilization in the network
US20160028595A1|2016-01-28|Quality of Experience Based Network Resource Management
US9131251B2|2015-09-08|Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
Liu et al.2011|A measurement study of resource utilization in internet mobile streaming
KR20190049111A|2019-05-09|Method and apparatus for providing streaming services
US20210392179A1|2021-12-16|Method to be implemented at a device able to run one adaptive streaming session, and corresponding device
WO2019120532A1|2019-06-27|Method and apparatus for adaptive bit rate control in a communication network
JP2008271084A|2008-11-06|Video reception terminal
同族专利:
公开号 | 公开日
WO2013130244A1|2013-09-06|
US10057316B2|2018-08-21|
EP2820817B1|2016-07-27|
KR102085539B1|2020-04-14|
US8874634B2|2014-10-28|
KR20150117204A|2015-10-19|
US20130232228A1|2013-09-05|
US20150046571A1|2015-02-12|
US20160359938A1|2016-12-08|
EP2820817A1|2015-01-07|
US9420023B2|2016-08-16|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US6105064A|1997-05-30|2000-08-15|Novell, Inc.|System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval|
US7237036B2|1997-10-14|2007-06-26|Alacritech, Inc.|Fast-path apparatus for receiving data corresponding a TCP connection|
US6646987B1|1998-10-05|2003-11-11|Nortel Networks Limited|Method and system for transmission control protocol packet loss recovery over a wireless link|
US7046631B1|1999-01-22|2006-05-16|Alcatel Canada Inc.|Method and apparatus for provisioning traffic dedicated cores in a connection oriented network|
US6757292B2|2001-07-11|2004-06-29|Overture Networks, Inc.|Automatic adjustment of buffer depth for the correction of packet delay variation|
US20030112758A1|2001-12-03|2003-06-19|Pang Jon Laurent|Methods and systems for managing variable delays in packet transmission|
US7027982B2|2001-12-14|2006-04-11|Microsoft Corporation|Quality and rate control strategy for digital audio|
US20040047367A1|2002-09-05|2004-03-11|Litchfield Communications, Inc.|Method and system for optimizing the size of a variable buffer|
KR100554015B1|2002-12-23|2006-02-22|한국과학기술정보연구원|System and method of controlling data transmission adapted for grid computing and computer readable recording medium of recording process thereof|
US8077775B2|2006-05-12|2011-12-13|Freescale Semiconductor, Inc.|System and method of adaptive rate control for a video encoder|
KR100787314B1|2007-02-22|2007-12-21|광주과학기술원|Method and apparatus for adaptive media playout for intra-media synchronization|
JP5180294B2|2007-06-19|2013-04-10|ヴァントリックスコーポレーション|Buffer-based rate control that utilizes frame complexity, buffer level, and intra-frame location in video encoding|
US8874634B2|2012-03-01|2014-10-28|Motorola Mobility Llc|Managing adaptive streaming of data via a communication connection|US20150163273A1|2011-09-29|2015-06-11|Avvasi Inc.|Media bit rate estimation based on segment playback duration and segment data length|
US8874634B2|2012-03-01|2014-10-28|Motorola Mobility Llc|Managing adaptive streaming of data via a communication connection|
US8838826B2|2012-04-04|2014-09-16|Google Inc.|Scalable robust live streaming system|
WO2014066416A2|2012-10-23|2014-05-01|Ip Reservoir, Llc|Method and apparatus for accelerated format translation of data in a delimited data format|
US9654527B1|2012-12-21|2017-05-16|Juniper Networks, Inc.|Failure detection manager|
US9215267B2|2013-03-14|2015-12-15|Disney Enterprises, Inc.|Adaptive streaming for content playback|
GB2551674B|2013-07-12|2018-04-11|Canon Kk|Adaptive data streaming method with push messages control|
KR102024311B1|2013-07-12|2019-09-23|캐논 가부시끼가이샤|Adaptive data streaming method with push messages control|
GB2541577A|2014-04-23|2017-02-22|Ip Reservoir Llc|Method and apparatus for accelerated data translation|
US10079910B1|2014-12-09|2018-09-18|Cloud & Stream Gears Llc|Iterative covariance calculation for streamed data using components|
US11109101B1|2015-05-13|2021-08-31|T-Mobile Usa, Inc.|Apparatus, system, and method for ABR segment pull DVR|
JP6601068B2|2015-09-01|2019-11-06|富士通コネクテッドテクノロジーズ株式会社|COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM|
JP6601066B2|2015-09-01|2019-11-06|富士通コネクテッドテクノロジーズ株式会社|COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM|
US10942943B2|2015-10-29|2021-03-09|Ip Reservoir, Llc|Dynamic field data translation to support high performance stream data processing|
CN105933369B|2015-12-24|2019-05-10|中国银联股份有限公司|A kind of message forwarding method and equipment|
CN105611389A|2015-12-25|2016-05-25|广州视源电子科技股份有限公司|Display method and display device of smart television|
CN106385620B|2016-10-25|2019-06-21|浙江红苹果电子有限公司|A kind of data smoothing output method based on Streaming Media|
CN108009111B|2016-11-01|2020-02-21|华为技术有限公司|Data stream connection method and device|
KR20180062230A|2016-11-30|2018-06-08|삼성전자주식회사|Method and Device for Steaming Audio using Wireless Link|
KR20180073041A|2016-12-22|2018-07-02|삼성전자주식회사|Electronic device, method for controlling thereof and computer-readable recording medium|
CN106817619B|2016-12-26|2019-04-12|天翼智慧家庭科技有限公司|A kind of identification video pause state, the method for improving OTT video quality monitoring accuracy|
US10417235B2|2017-02-03|2019-09-17|International Business Machines Corporation|Window management in a stream computing environment|
US10676379B2|2017-06-14|2020-06-09|Loon Llc|Electrolysis systems and methods for life extension of an apparatus such as a balloon|
US10573196B2|2017-07-28|2020-02-25|Loon Llc|Systems and methods for simulating wind noise models|
US10809718B2|2017-07-28|2020-10-20|Loon Llc|Systems and methods for controlling aerial vehicles|
US10437260B2|2017-07-28|2019-10-08|Loon Llc|Systems and methods for controlling aerial vehicles|
US10437259B2|2017-07-28|2019-10-08|Loon Llc|Systems and methods for controlling aerial vehicles|
US10558219B2|2017-09-21|2020-02-11|Loon Llc|Systems and methods for controlling an aerial vehicle using lateral propulsion and vertical movement|
US10305609B1|2017-11-13|2019-05-28|Loon Llc|Beamforming calibration|
US10734721B2|2017-11-13|2020-08-04|Loon Llc|Beamforming calibration|
US10305564B1|2017-11-13|2019-05-28|Loon Llc|Beamforming calibration|
US10305608B1|2017-11-13|2019-05-28|Loon Llc|Beamforming calibration|
US10923930B2|2017-12-21|2021-02-16|Loon Llc|Forecasting power usage of aerial vehicles|
US10875618B2|2017-12-21|2020-12-29|Loon Llc|Aerial vehicle control using ballast|
US10780969B2|2017-12-21|2020-09-22|Loon Llc|Propulsion system for a buoyant aerial vehicle|
US10464443B2|2017-12-21|2019-11-05|Loon Llc|Managing power of aerial vehicles|
US10890885B2|2017-12-21|2021-01-12|Loon Llc|Managing power of aerial vehicles|
US10611242B2|2017-12-21|2020-04-07|Loon Llc|Managing power of aerial vehicles|
US10762727B2|2017-12-29|2020-09-01|Loon Llc|Estimation of aerial vehicle state|
US11220320B2|2019-07-17|2022-01-11|Aerostar International, Inc.|Lateral propulsion systems and architectures for high altitude balloons|
法律状态:
2020-11-24| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2020-12-01| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2020-12-01| B15K| Others concerning applications: alteration of classification|Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 29/06 , H04N 21/2343 Ipc: H04N 21/2343 (2011.01), H04N 21/439 (2011.01), H04 |
2021-12-07| B350| Update of information on the portal [chapter 15.35 patent gazette]|
优先权:
申请号 | 申请日 | 专利标题
US13/409,247|2012-03-01|
US13/409,247|US8874634B2|2012-03-01|2012-03-01|Managing adaptive streaming of data via a communication connection|
PCT/US2013/025494|WO2013130244A1|2012-03-01|2013-02-11|Managing adaptive streaming of data via a communication connection|
[返回顶部]